home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / e / amigae30a_fr.lha / AmigaE30f / Sources / Tools / ILBM / showpic.e < prev   
Encoding:
Text File  |  1994-10-06  |  2.1 KB  |  70 lines

  1. /*
  2.  
  3.         showpic.e                          Michael Zucchi 1994
  4.  
  5.         Un simple afficheur d'image IFF ILBM
  6.         Démontre l'utilisation du module ILBM, et le requester de fichier asl
  7.  
  8.         Ce programme peut être distribué librement seulement au sein des
  9.         propriétaires enregistrés de l'AmigaE.
  10.  */
  11.  
  12.  
  13. MODULE 'tools/ilbm', 'tools/ilbmdefs',
  14.         'intuition/intuition',
  15.         'asl', 'libraries/ASL'
  16.  
  17. DEF scr,
  18.         buffer[256]:ARRAY
  19.  
  20. PROC main()
  21. DEF ilbm,filename
  22.  
  23. IF filename:=requestfile('Select picture')
  24.         IF ilbm:=ilbm_New(filename,0)
  25.                 ilbm_LoadPicture(ilbm,[ILBML_GETSCREEN,{scr},0])
  26.                 ilbm_Dispose(ilbm)      -> plus du tout nécessaire ...
  27.  
  28.                 -> ce n'est juste qu'un exemple!  Dans un application réelle,
  29.                 -> utilisez toujours les ports IDCMP et les fenêtres.
  30.  
  31.                 IF scr                  -> seulement si une a été créé.
  32.                         WHILE Mouse()<>1
  33.                                 Delay(4)
  34.                         ENDWHILE
  35.                         CloseScreen(scr)
  36.                 ENDIF
  37.         ENDIF
  38. ENDIF
  39.  
  40. ENDPROC
  41.  
  42. /*
  43.         Affiche une requête de fichier ASL.  Si l'utilisateur choisit un fichier,
  44.         il est étendu à son chemin + nom de fichier.
  45.  */
  46. PROC requestfile(title)
  47. DEF name=0,fr:PTR TO filerequester
  48.  
  49. IF aslbase:=OpenLibrary('asl.library',36)
  50.         IF fr:=AllocAslRequest(ASL_FILEREQUEST,[ASLFR_TITLETEXT,title,0])
  51.                 IF AslRequest(fr,0)
  52.  
  53.                         -> désolé, un peu d'asm ici. Ben ... comment sinon?
  54.                         -> ca réalise une copie de chaine (strcpy()) ...
  55.                         MOVE.L  fr,A0
  56.                         MOVE.L  8(A0),A0        -> pointeur répertoire de la requête de fichier.
  57.                         MOVE.L  buffer,A1
  58.                 cp:     MOVE.B  (A0)+,(A1)+
  59.                         BNE.S   cp
  60.  
  61.                         AddPart(buffer,fr.file,256)
  62.                         name:=buffer
  63.                 ENDIF
  64.                 FreeAslRequest(fr)
  65.         ENDIF
  66.         CloseLibrary(aslbase)
  67. ENDIF
  68.  
  69. ENDPROC name
  70.